TypeScript で keof Hoge じゃなくて実際の型 "hoge" | "hogehoge" を表示する
普通にやるとこうなっちゃう
code:ts
type Hoge = {
hoge: string;
hogehoge: number;
};
type HogeKeys = keyof Hoge;
// ^? type HogeKeys = keyof Hoge
code:ts
type Hoge = {
hoge: string;
hogehoge: number;
};
type Simplify<T> = T & {};
type HogeKeys = Simplify<keyof Hoge>;
// ^? type HogeKeys = "hoge" | "hogehoge"
より厳密にはこっちらしい?
code:ts
type Hoge = {
hoge: string;
fuga: number;
};
/** @copyright from sindresorhus/type-fest */
type HogeKeys = Simplify<keyof Hoge>;
// ^? type HogeKeys = "hoge" | "hogehoge"